1. Field of the Invention
The invention relates to data communications and, more particularly, to improvements in the management of playout buffers (POB) in packet-based communications networks.
2. Description of Prior Art
In order to transport constant bit rate (CBR) traffic, such as telephone conversations or real time video transmissions, modern high-speed, packet-based telecommunications networks, such as those based on Asynchronous Transfer Mode (ATM) technology, make use of playout buffers in receiving nodes at the edge of the network to smooth out differences in the queuing delays that each packet in a data stream experiences as it passes through the network.
The playout buffer is generally arranged to operate as a first-in/first-out (FIFO) buffer in which data is placed when it arrives at the node. Data is then dequeued from the playout buffer uniformly so as to preserve the constant bit rate of the data stream being transmitted. Packet sequence numbers can be used to ensure the data is played out in the correct order and to detect packet loss.
The use of a playout buffer inevitably introduces an overall end-to-end delay in the data stream being transmitted. For real time applications, it can be vitally important to minimize this delay. For example, for voice traffic in a telephone application, an end-to-end delay of more than about 200 milliseconds will be perceivable by the parties in a call. This is clearly undesirable for users and may require the use of echo cancellation techniques or the like.
A variety of techniques have been proposed for the management of playout buffers. Typically, these techniques involve estimating the maximum variation in the transmission delay expected for each packet as it passes through the network, the variation being a parameter also known as the maximum jitter or maximum cell delay variation (CDV). In ATM networks the CDV parameter is estimated by the routing mechanisms at call set-up time. The size of the playout buffer is chosen such that variations in cell arrival time of this order can be smoothed. The end-to-end delay introduced using this approach is then approximately equal to the maximum jitter estimated for the packet data stream. Special techniques are generally provided to handle the relatively rare cases when the playout buffer is either full when a packet arrives, which is referred to as an overrun, or empty when a packet is due to be played out, which is referred to as an underrun.
U.S. Pat. No. 5,450,410 issued Sep. 12, 1995, describes such management of a playout buffer and accompanying conventional underrun and overrun processing. In the system described in the '410 patent, if the number of packets in the buffer is greater than a threshold L when a packet arrives, the arriving packet is dropped; and if the number of packets in the buffer falls below a threshold K, a dummy packet is enqueued in the buffer to avoid an underrun.
PCT application published under number WO 95/14337 proposes a system in which arriving packets are time stamped before being placed in a playout buffer. An adaptive algorithm periodically measures the longest waiting times of packets in the playout buffer and adjusts the packet playout times so that the expected longest waiting time will be equal to the expected maximum jitter.
Techniques are also required to deal with possible slight differences in clock speeds at each end of a CBR link. This can lead to a drift in the average filling level of the playout buffer which, if not corrected, can lead to excessive overruns or underruns.
One standard method to adjust the filling level in the Play Out Buffer (POB) for asynchronous communication is called Adaptive Clock Recovery (ACR), described in International Telecommunication Union (ITU) recommendation I.363.1. The average waiting time in the POB is monitored. When the waiting time is too great or tends to increase with time, the frequency of the service clock between an edge node or IWF and a Private Branch Exchange (PBX) is increased to cause the POB to drain more quickly. When the average waiting time is too small, the service clock is decreased to cause the POB to drain less quickly. Adaptive Clock Recovery is appropriate for an asynchronous situation where the input service clock frequency must be recovered at the output IWF. However, it is not suitable for a synchronous situation where the service clock frequency is constant.
The problem with the above described conventional POB management techniques is that the methods used to estimate the maximum jitter are somewhat imprecise. Commonly, the maximum end-to-end delay for a particular connection is calculated based on the assumption that the maximum delay is bounded by the sum of the maximum delays in each link in the network path allocated to the connection. Moreover, the maximum delay per link is often computed as the maximum buffer size at the link divided by the line speed. In consequence, the resulting estimate of the maximum jitter is generally extremely pessimistic. The inventors have found that, under realistic network conditions, the estimated maximum jitter is often more than 10 times greater than the actual jitter experienced over a long period of time.
Furthermore, the jitter experienced on any particular connection within the network can change rapidly over time due to changing network conditions, such as other connections being set up and removed.